ActionController::Routing::Routes.draw do |map|

  # The priority is based upon order of creation: first created -> highest priority.
  
  # Sample of regular route:
  # map.connect 'products/:id', :controller => 'catalog', :action => 'view'
  # Keep in mind you can assign values other than :controller and :action

  # Sample of named route:
  # map.purchase 'products/:id/purchase', :controller => 'catalog', :action => 'purchase'
  # This route can be invoked with purchase_url(:id => product.id)

  # You can have the root of your site routed by hooking up '' 
  # -- just remember to delete public/index.html.
  map.connect '', :controller => "welcome"

  # Allow downloading Web Service WSDL as a file with an extension
  # instead of a file named 'wsdl'
  map.connect ':controller/service.wsdl', :action => 'wsdl'

  map.connect '/account/:action', :controller => 'account'
  map.connect '/install', :controller => 'welcome', :action => 'install'

  map.resources :events, 
    :collection => {'act' => :any, 'choose_for_state_change' => :get, 'update_availability' => :any},
    :member => {'attend' => :post, :unattend => :post, :assign => :any, :deassign => :any} do |event|
      event.resources :comments
  end
  
  map.resource :profile, :controller => 'profile', :member => {:change_password => :any}
  
  map.resource :admin do |admin|
    admin.resources :users, :member => {:impersonate => :get}, :collection => {:stop_impersonating => :get}
    admin.resources :call_for_workers
  end
  
  %w(new cfw tba assigned past).each do |state|
    map.connect "events/:state", :controller => 'events', :action => 'list'
  end

  # Install the default route as the lowest priority.
  # map.connect ':controller/:action/:id.:format'
  # map.connect ':controller/:action/:id'
end
